package eerbaar.v2.gamebuilder.server;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import eerbaar.server.gamebuilder.game.GameBuilder;
import eerbaar.shared.exceptions.GameException;

public class InitServlet implements Servlet {

    private ServletConfig config;

    public InitServlet() {
        //
    }

    @Override
    public void destroy() {
        //
    }

    @Override
    public ServletConfig getServletConfig() {
        return this.config;
    }

    @Override
    public String getServletInfo() {
        return "InitServlet";
    }

    @Override
    public void init(ServletConfig config) throws ServletException {

        new eerbaar.shared.persist.Module().registerServices();
        new eerbaar.server.serializer.Module().registerServices();
        new eerbaar.shared.persist.lib.Module().registerServices();
        new eerbaar.shared.message.Module().registerServices();
        new eerbaar.message.lib.Module().registerServices();
        new eerbaar.action.Module().registerServices();
        new eerbaar.action.lib.Module().registerServices();
        new eerbaar.expression.Module().registerServices();
        new eerbaar.expression.lib.Module().registerServices();

        try {
            new GameBuilder().build();
        } catch (GameException e) {
            e.printStackTrace();
        }

        this.config = config;
    }

    @Override
    public void service(ServletRequest arg0, ServletResponse arg1)
            throws ServletException, IOException {
        //
    }

}
